linux vim emacs我的IT启蒙

Table of Contents

linux、vim、emacs这三个是对我IT生涯影响最深的软件,作为程序员从某种意义上来讲编程语言并不是我的启蒙。

linux

第一次使用的是ubuntu,gnome的图形界面感觉上也没什么奇特的。但是在视频外的现实中,看到别人键指如飞地在终端中用指令操作计算机让我惊呆了。原来使用计算机不是只有用鼠标点点,键盘打打字按按快捷键,是真的可以像电影里的黑客那样噼里啪啦地使用电脑。

从那之后我就一发不可收拾得迷上了terminal、bash的东西,在那之前使用计算机对我来说是一件很麻烦的事情(可能是电脑性能差,国产软件的锅),但是在学会了linux之后,命令行工具简洁、占用内存小、用管道的可组合特性才真正让我感受到了计算机的魅力。

vim

编写程序也不是一开始就喜欢的,还是电脑性能差和IDE庞大的锅,起先对我来讲启动电脑——>等上十几秒然后启动IDE——>再等上几秒——>点击创建项目——>写code——> 点击编译——>等待程序结果,这一整套流程对新手的我来说简直就是噩梦。每次感觉花了一分多钟的时间,写好代码跑起来还不一定正确,然后再周而复始的点击构建这一些列操作都会让我发狂。

但是接触了linux之后很自然而然的就接触到了vim。从此之后想到一个idea,一秒钟不到打开vim ——> 贴贴代码 ——> 全程键盘定位修改——> gcc构建,这一套下来就花了我十几秒时间,和之前的IDE对比起来简直就是飞一般的感觉。

vim启动速度飞快,全键盘的操作配合上linux各种shell工具,构建的快速的流程反馈让写程序这件事也变成了一件有趣的事。

emacs

其实emacs是我工作了好几年后,才真正意义上开始使用的。之前一直都听说过这玩意很复杂,bash默认的键绑定也是emacs的移动方式,虽然很早就接触过,也学了一些它的快捷键,但一直没找到使用场景。

后来是记笔记这个需求,让我重新把注意力放到了它身上,但最影响我的还是它的elisp。lisp系语言构建的程序,整个语法树以一组组括号组成展现在面前。整个emacs除了最基础的核心有c组成,剩下的就是由elisp构建的,这让其整体结构有非常强的一致性。

linux这类unix系的操作系统,有一切皆文件的概念。同样的,很多程序语言也有一切皆对象的概念。但是往往这些概念多多少少都没有贯彻到底,会有一些特例。而emacs几乎就全是elisp代码的特性,可以让我非常方便的定制这个软件的一切。

所以有人才会说emacs是披着编辑器外衣的"操作系统",换个角度来讲它是披着编辑器外衣的elisp解释器,你的一切操作配置都是可”编程“的。一但理解了这个理念,整个软件就变得非常灵活,我也是理解了它的理念后才一发不可收拾得迷上了它。

总结

linux和vim让我感受到了操作计算机的魅力,emacs则让我感受到了一致性所带来的简洁。一但get到了这几个点,计算机对我来说自然有趣了起来。